#ifndef LAMPLIGHT_H
#define LAMPLIGHT_H

#include <QWidget>
#include <QMap>  // 添加 QMap 头文件
#include <QString>  // 添加 QString 头文件
#include <QLabel>

namespace Ui {
class lamplight;
}

class lamplight : public QWidget
{
    Q_OBJECT

public:
    explicit lamplight(QWidget *parent = nullptr);
    ~lamplight();
signals:
    void switchToRemoteControlMain(); //返回智能家居主界面的信号（与pilot_signal一致）
    void sendLamplightCmd(const QString& cmd);//发送灯光控制命令的信号（参数为具体命令字符串）
    void updateLampStatus(int lampIndex, bool isOn);//带灯类型和状态的信号，用于更新标签

private slots:
    void on_pushButton_7_clicked();//返回智能家居主界面

    // 新增：6个开关按钮的点击槽函数（对应pushButton~pushButton_6）
        void on_pushButton_clicked();    // 开关1 → 车库灯
        void on_pushButton_2_clicked();  // 开关2 → 客厅灯
        void on_pushButton_3_clicked();  // 开关3 → 卧室灯
        void on_pushButton_4_clicked();  // 开关4 → 厨房灯
        void on_pushButton_5_clicked();  // 开关5 → 卫生间灯
        void on_pushButton_6_clicked();  // 开关6 → 书房灯

public slots:  // 改为 public slots
    void onLampStatusReceived(const QString& message);//处理网络接收的灯光状态消息

private:
    Ui::lamplight *ui;

    // 映射灯名称到标签索引
    bool lampStates[6] = {false, false, false, false, false, false};
        QMap<QString, int> lampNameToIndex = {
            {"车库灯", 1}, {"客厅灯", 2}, {"卧室灯", 3},
            {"厨房灯", 4}, {"卫生间灯", 5}, {"书房灯", 6}
        };
    // 补充updateLampDisplay的声明，参数与实现一致
    void updateLampDisplay(int lampIndex, bool isOn);
};

#endif // LAMPLIGHT_H
